// 解题思路：
// 最优除法：返回一个表达式，表达式可以任意加括号，但是不能加无效括号，保证表达式的值是最大的
// 贪心策略：分母上留一个 b，剩下的数都放分子上的商是最大的
// 因此只需要加一个括号，把 b 和后面的数字括起来即可
// 细节：
// 数组只有 1 个元素或者 2个元素，需要特殊处理

public class Solution {
    public String optimalDivision(int[] nums) {
        StringBuilder ret = new StringBuilder();
        int n = nums.length;
        if(n == 1) return "" + nums[0];
        else if(n == 2) return "" + nums[0] + "/" + nums[1];
        ret.append(nums[0]);
        ret.append('/');
        ret.append('(');
        for(int i = 1; i < n; i++){
            ret.append(nums[i]);
            if(i == n - 1) break;
            ret.append('/');
        }
        ret.append(')');
        return ret.toString();
    }
}
